<%@ page import="java.util.Map" %>
<%@ page import="java.util.HashMap" %>
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ page isELIgnored="false" %>
<%--
  Created by IntelliJ IDEA.
  User: BF100233
  Date: 2016/9/15
  Time: 11:00
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>input</title>
</head>
<body>
<!--
    1. WHY 使用 form 标签呢 ?
    可以更快速的开发出表单页面, 而且可以更方便的进行表单值的回显
    2. 注意:
    可以通过 modelAttribute 属性指定绑定的模型属性,
    若没有指定该属性，则默认从 request 域对象中读取 command 的表单 bean
    如果该属性值也不存在，则会发生错误。
-->
<%--
modelAttribute 属性指定绑定的模型属性默认名称为 command，这里为 employee
--%>
<%--<br><br>--%>
<%-- ${pageContext.request.contextPath }使用绝对路径 --%>

<form:form action="${pageContext.request.contextPath }/emp" method="post" modelAttribute="employee" >
    <!-- SpringMVC表单标签：path 属性对应 html 表单标签的 name 属性值 -->
    <c:if test="${employee.id==null }">
      LastName:<form:input path="lastName"/>
    </c:if>
    <c:if test="${employee.id!=null}">
        <form:hidden path="id"/>
        <input type="hidden" name="_method" value="PUT" />
        <%-- 对于 _method 不能使用 form:hidden 标签, 因为 modelAttribute 对应的 bean 中没有 _method 这个属性 --%>
        <%--
        <form:hidden path="_method" value="PUT"/>
        --%>
    </c:if>
    <br>
    Email:<form:input path="email"/>
    <br>
    <%
        Map<String, String> genders = new HashMap();
        genders.put("1", "Male");
        genders.put("0", "Female");
        request.setAttribute("genders", genders);
    %>
    Gender:<form:radiobuttons path="gender" items="${requestScope.genders}"/>
    <br>
    Department:<form:select path="department.id" items="${requestScope.departments}" itemLabel="departmentName" itemValue="id"/>
    <br>
    <input type="submit" value="Submit"/>
</form:form>

</body>
</html>
